//var $path = "http://"+location.host + "/Recruit";//项目根目录地址
var $path = "http://"+location.host;//项目根目录地址

//创建字符串全部替换方法
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {  
    if (!RegExp.prototype.isPrototypeOf(reallyDo)) {  
        return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);  
    } else {  
        return this.replace(reallyDo, replaceWith);  
    }  
};

//var $path = "http://"+location.host;//项目根目录地址
$(function(){
	/***
	 * 绑定计算当前已经输入多少个字符串
	 * 要计算的 textarea 必须绑定class   countStr
	 * 显示 div必须 绑定 class showcountStr  
	 * 在页面加载时完毕后调用 countTextarea()方法
	 *     <div class="showcountStr" style="margin-left: 40px; font-weight: normal; "></div>
	 *     	<textarea class='countStr' 
	 */
	$("textarea.countStr").live('keyup',function(){
		var length = $(this).val().length;
	    //从max属性中获取最大输入字数
	    var max = $(this).attr("max");
	    var text ="";
	    if(max) {
	    	if(length > parseInt(max)) {
	    		text ="<label style='color:#F00;'>(已输入" + length + "/" + max + "个字)</label>";
	    	} else {
	    		text ="<label>(已输入" + length + "/" + max + "个字)</label>";
	    	}
	    } else {
	    	if(length > parseInt(max)) {
	    		text ="<label style='color:#F00;'>(已输入" + length + "个字)</label>";
	    	} else {
	    		text ="<label>(已输入" + length + "个字)</label>";
	    	}
	    }
	    if($(this).parent().find(".showcountStr").attr("class")!= undefined){
	    	$(this).parent().find(".showcountStr").html(text);
		}else if($(this).parent().parent().find(".showcountStr").attr("class")!= undefined){
			$(this).parent().parent().find(".showcountStr").html(text);
		 }else{
			$(this).parent().parent().parent().find(".showcountStr").html(text);
		}
	});
	
	var $time = $('.time, .timeYm, .timemin'); //分别对应yyyy-MM-dd;yyyy-MM;yyyy-MM-dd HH:mm
	// 用来存放当前正在操作的日期文本框的引用。
    var datepicker_CurrentInput = null;
	$time.live('focus',function(){
		var $thisTime = $(this);
		
		var targetClass = ""; //目标日期控件类
		if($thisTime.hasClass("beginTimeClass")) {
			targetClass = ".beginTimeClass"; //触发的是开始日期控件
		} else if($thisTime.hasClass("endTimeClass")) {
			targetClass = ".endTimeClass"; //触发的是结束日期控件
		}
		var dateFormat = "";
		var closeText = $thisTime.hasClass("time") ? "清空" : "选择";
		//var funChangeMY = function() {};
		if($thisTime.hasClass("time") || $thisTime.hasClass("timemin")) {
			dateFormat = "yy-mm-dd";
		} else if($thisTime.hasClass("timeYm")) {
			dateFormat = "yy-mm";
			//如果只显示年月，下拉选择年月后直接在文本框显示
			/*funChangeMY = function(dateText, inst) {
				var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
				var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
				$thisTime.datepicker('setDate', new Date(year, month, 1));
			};*/
		}
		var dateOptions = {
			changeMonth: true,
			changeYear: true,
			dateFormat: dateFormat,
			yearRange:'1900:2025',
			showButtonPanel:true,
			closeText: closeText,
			//onChangeMonthYear: funChangeMY,
			beforeShow: function (input, inst) {
				datepicker_CurrentInput = input;
			 	setTimeout(function(){
					$('#ui-datepicker-div').css("z-index", 30);
				},100);
			 	//显示日时，才需要设置最大最小日期值
			 	if(($thisTime.hasClass("time")) && targetClass !== "") {
			 		var index = $(targetClass).index($thisTime); //获取日期控件在集合中的下标
			 		$(".beginTimeClass").eq(index).datepicker("option", "maxDate", $(".endTimeClass").eq(index).val()); //设置开始日期的最大值
		 			$(".endTimeClass").eq(index).datepicker("option", "minDate", $(".beginTimeClass").eq(index).val()); //设置结束日期的最小值
			 	}
			}
		};
		if($thisTime.hasClass("timemin")) {
			$.extend(dateOptions, {timeFormat: 'hh:mm'});
			$thisTime.datetimepicker(dateOptions); //使用时间控件
		} else {
			$thisTime.datepicker(dateOptions); //使用日期控件
		}
	});
	
	// 绑定“Done”按钮的click事件，触发的时候，清空文本框的值
    $(".ui-datepicker-close").live("click", function() {
    	if($(datepicker_CurrentInput).hasClass("timeYm")){
    		var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
			var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
			month = parseInt(month) + 1;
			if(month <= 9) {
				month = "0" + month; //月份补零
			}
			datepicker_CurrentInput.value = year + "-" + month;
    	} else if($(datepicker_CurrentInput).hasClass("time")){
    		datepicker_CurrentInput.value = "";
    	}
    });
	
	$('.times').live('focus',function(){
		$(this).datepicker({
			changeMonth: true,
			changeYear: true,
			dateFormat:'yy-mm-dd',
			beforeShow: function () { }		
		});
	});
	
	$time = null;
	$('.timemin').live('focus',function(){
		$(this).datetimepicker({
			changeMonth: true,
			changeYear: true,
			timeFormat: 'hh:mm:ss',
			dateFormat: 'yy-mm-dd'
		});
	});
	
	$('.autocomplete').live('focus',function(){
		autocomplete(this);
	});
	
	$('.model').live('click',function(){
		var current = $(this);
		var key = current.attr('value');
		if(current.attr("checked")){
			$(":checkbox[key="+key+"]").attr("checked",true);
		}else{
			$(":checkbox[key="+key+"]").attr("checked",false);
		}
	});
	
	$('.checkAuto').live('click',function(){
		var current = $(this);
		var key = current.attr('value');
		var checkkey = $(":checkbox[key="+key+"]");
		checkkey.each(function(){
			this.checked = !this.checked;
		});
	});
	
	$('input').live('keydown', function(e) {
		if(e.keyCode == 13) {
			return false;
		}
	});
	
	/*$(document).bind('keydown',(function(e) {
		//判断是否有打开信息页面
		var display = $('.ui-dialog').css('display');
		var propagate = true;
		if(display && display == 'block')
			propagate = false;
		var ele = $('.ui-tabs-selected a');
		if (propagate && e.keyCode == 13) {
			var form = $(ele.attr('href') + ' .searchForm');
			form.submit(function() {
				return false;
			});
			form.find('.searchbtn').trigger('click');
		}
		else if(e.keyCode == 37) { // left arrow
			var preBtn = $(ele.attr('href') + ' .pPrev');
			preBtn.trigger('click');
		} else if(e.keyCode == 39) { // right arrow
			var nextBtn = $(ele.attr('href') + ' .pNext');
			nextBtn.trigger('click');
		}
	}));*/
});
/**关闭详细信息页面*/
var closedetail = function(targetDialogId){
	if(!targetDialogId) {
		targetDialogId = "#detail"; //弹出窗默认id为#detail
	}
	$(targetDialogId).dialog("close").empty();
};

/**共用工具信息*/
var commonUtils={
	//保存信息处理
	addInfo:function(t, content, params){
		var dialogId = "#detail"; //弹出窗默认id为#detail
		var reload = true; //是否重新加载列表
		var hideUpdatedTr = false; //是否需要删除已经被更新的记录
		if(params) {
			if(params.dialogId) {
				dialogId = params.dialogId; //有指定弹出窗默认id的情况，进行获取
			}
			if(params.reload != undefined) {
				reload = params.reload;
			}
			if(params.hideUpdatedTr != undefined) {
				hideUpdatedTr = params.hideUpdatedTr;
			}
		}
		
		if(content){
			//iframe处理
			$('.showInfoFrame').get(0).contentWindow.mySave(t, dialogId, reload, hideUpdatedTr);
		}else{
			if(params && params.checkFormMsg && !params.checkFormMsg()) {
				return;
			}
			var form = $('#infoForm');
			var url = $path+form.attr('action');
			var data = form.serialize();
			$.post(url,data,function($data){
				if(!$data.resultCode){
					hiAlert($data.errorMessage,"提示");
				}else{
					//如果设置了重新加载列表，进行加载
					if(reload) {
						t.flexReload();
					}
					//如果设置了需要删除已经被更新的记录，进行数据行删除
					if(hideUpdatedTr) {
						$(":checkbox[value='" + $data.id + "']", t).parents("tr").remove();
					}
					if(params && params.afterCallBack){
						params.afterCallBack($data);
					}
					closedetail(dialogId);
				}			
			},'json');
		}
	},
	
	/**
	 * 选择判断
	 * @param grid 包含列表的div对象
	 * @param params 附加参数json对象 格式如下:
	 * {
	 * check:是否需要判断选中
	 * multiple：是否支持多选
	 * }
	 * @returns 如check=true返回的是选中的id提交参数字符串，
	 * */
	check:function(grid,params){
		var data;
		if(params&&params.check){
			var ids = $(':checkbox[name="ids"]:checked',grid);
			if(params&&params.multiple){
				if(ids.length==0){
					hiAlert("请选择要处理的记录!","提示");
					return false;
				}
				data=ids.serializeArray();
			}else {
				if((ids.length==0||ids.length>1)&&!params.copy){
					hiAlert("请选择一条要处理的记录!","提示");
					return false;
				}
				if(ids.length!=0){
					data="id="+ids[0].value;
					if(params.copy){
						data=data+"&copy=true";
					}
					return data;
				}
			}
		}
		return "check=true";
	}
};

/**
 * 全选操作
 * @param $this
 */
function checkAll($this){
	var all = $($this);
	var result = all.attr("checked");
	var grid = all.parents('.flexigrid');
	if(result){
		$(':checkbox[name="ids"]',grid).attr({checked:true});
	}else{
		$(':checkbox[name="ids"]',grid).attr({checked:false});
	}
}

/**
 * 用户自定义列
 * @param com
 * @param grid
 * @param t
 * @param p
 * @param params
 */
function showCustom(com,grid,t,p,params){
	var g ={
			getColumnModel: function(cmName,cm) {
				for(var val in cm){
					val = cm[val];
					if(cmName==val.name) {
						return val;
					} else {
						if(val.sortName) {
							if(cmName == val.sortName){
								return val;
							}
						}
					}
				}
			},
			checkCustom:function (){
				$('tbody', grid.nDiv)
				//获取选中列
				var nameArray = $('.sortName');
				var ary = [];
				nameArray.each(function($index,n){
					var name = n.value;					
					ary.push(p.cookieId+'.'+name + '=' + ($(n).attr('checked')=='checked')+'|width='+$(n).attr('colWidth'));
					
				});
				$.cookie(p.cookieId+'ary',ary.toString(),{expires:20*365});
				
				//增加保存搜索层之前的值(Mengfh)
				var srcCmEles = [];
				$(grid).find(".cmEle").each(function(){
					srcCmEles.push($(this)); //先保存之前搜索层内的元素
				});
				
				var newt = t.clone();
				//alert(newt.html());
				$(grid).after(newt);
				newt.empty();
				newt.removeAttr("p");
				newt.removeAttr("grid");
				$(grid).remove();
				newt.flexigrid(p);
				
				//还原搜索层之前保存的值(Mengfh)
				if(srcCmEles.length > 0) {
					//获取新的flex的div
					var newGdiv = newt.parents(".flexigrid");
					newGdiv.find(".cmEle").each(function(index){
						var srcCmEle = srcCmEles[index]; //根据下标，获取之前保存的搜索层元素
						var tagName = this.tagName.toLowerCase(); //获取元素标题名称
						//获取之前保存的搜索层元素的禁用情况，延用至新的flex控件中
						$(this).prop("disabled", srcCmEle.prop("disabled"));
						if(tagName === "input") {
							//input元素的情况
							var eleType = $(this).attr("type");
							if(eleType === "text" || eleType === "hidden") {
								//文本框或者隐藏域的情况
								$(this).val(srcCmEle.val());
							} else if(eleType === "radio" || eleType === "checkbox") {
								//单选框或者复选框的情况
								$(this).prop("checked", srcCmEle.prop("checked"));
							}
						} else if(tagName === "textarea" || tagName === "select") {
							//textarea或者下拉框的情况
							$(this).val(srcCmEle.val());
						}
					});
				}
				closedetail();
			},
			sortup:function(){
				//获取当前选中的li
				var clickli = $('.clickli');
				if(!clickli.html()){
					alert('请选中要移动的列!');
					return;
				}
				var clickliHtml =  clickli.html();
			    var checkbox  =	clickli.find(":checkbox");
			    //判断是否选中
			    var ischecked = checkbox.attr("checked") == "checked";
				//查找上一个同级li
				var prevli = clickli.prev('li');
				var precheckbox = prevli.find(":checkbox");
				var isprecheck = precheckbox.attr("checked")=="checked";
				if(prevli.html()){
					var prevliHtml = prevli.html();
					//alert(prevliHtml);
					//alert(clickliHtml);
					//内容交换
					clickli.html(prevliHtml);
					prevli.html(clickliHtml);
					prevli.addClass('clickli');
					clickli.removeClass('clickli');
					if(ischecked){
						prevli.find(":checkbox").attr("checked",true);
					}else{
						prevli.find(":checkbox").attr("checked",false);
					}
					if(isprecheck){
						clickli.find(":checkbox").attr("checked",true);
					}else{
						clickli.find(":checkbox").attr("checked",false);
					}
				}
			},
			sortdown: function(){
				//获取当前选中的li
				var clickli = $('.clickli');
				if(!clickli.html()){
					alert('请选中要移动的列!');
					return;
				}
				var clickliHtml =  clickli.html();
				var checkbox  =	clickli.find(":checkbox");
				  //判断是否选中
			    var ischecked = checkbox.attr("checked") == "checked";
				//查找下一个同级li
				var nextli = clickli.next('li');
				var isnextcheck = nextli.find(":checkbox").attr("checked") == "checked";;
				if(nextli.html()){
					var nextliHtml = nextli.html();
					//内容交换
					clickli.html(nextliHtml);
					nextli.html(clickliHtml);
					nextli.addClass('clickli');
					clickli.removeClass('clickli');
					//判断选中  江健斌
					if(ischecked){
						nextli.find(":checkbox").attr("checked",true);
					}else{
						nextli.find(":checkbox").attr("checked",false);
					}
					if(isnextcheck){
						clickli.find(":checkbox").attr("checked",true);
					}else{
						clickli.find(":checkbox").attr("checked",false);
					}
				}
			}
	};
	var detailDiv = $('#detail');
	$("#detail").empty();
	var detailHtml = "<div class='customUl'><ul>";
	//TODO 获取cookie设置
	var cmCopy = [];
	if(p.cookieId){
		var setting = $.cookie(p.cookieId+'ary');
		if(setting){
			setting = setting.split(',');
			$.each(setting,function(i,val){
				var configs = val.split('|');
				var showConfig = configs[0].split('=');
				var cm = g.getColumnModel(showConfig[0].replace(p.cookieId+'.',''), p.colModel);
				if(cm!=undefined){
					cm.hide = (showConfig[1]=='false');
					if(configs[1]) {
						var widthConfig = configs[1].split('=');
						if(widthConfig[0]!='undefined' && widthConfig[1]!='undefined') {
							cm.width = widthConfig[1];
						}
					}
					cmCopy.push(cm);
				}
			});
		}
	}
	if(cmCopy && cmCopy.length > 0) {
		if(p.colModel.length > cmCopy.length) {
			for(var i=p.colModel.length-(p.colModel.length-cmCopy.length)-1,j=p.colModel.length;i<j;i++) {
				cmCopy.push(p.colModel[i]);
			}
		}
		p.colModel = cmCopy;
	}
	var cols = p.colModel;
	for(var i =0;i<cols.length;i++){
		var col = cols[i];
		var name = col.name;
		if(col.sortName){
			name=col.sortName;
		}
		var display = col.display;
		var width = col.width;
		if(!col.hide){
			detailHtml+="<li style='float: left;'><input colWidth='"+width+"' style='float: left;' id='ch"+name+"' checked='checked' class='sortName' type='checkbox' name='sortName' value='"+name+"'/> <div style='float: left;width:330px;text-align: left;'>"+ display
			+"</div></li>";	
		}else{
			detailHtml+="<li style='float: left;'><input colWidth='"+width+"' style='float: left;' id='ch"+name+"'  class='sortName' type='checkbox' name='sortName' value='"+name+"'/> <div style='float: left;width:330px;text-align: left;'>"+ display
			+"</div></li>";	
		}
	}
	detailHtml += '</ul></div>';
	detailHtml+='<input type="button" value="上移" id="sortup"/>  <input type="button" value="下移" id="sortdown"/>';
	detailDiv.html(detailHtml);
	
	//alert($('li',detailDiv).size());
	//判定li事件
	$('li',detailDiv).click(function(){
		$('li',detailDiv).removeClass('clickli');
		$(this).addClass('clickli');
	});
	$('#sortup').click(g.sortup);
	$('#sortdown').click(g.sortdown);
	$("#detail").dialog({
		height: 400,
		width: 400,
		closeText:'取消',
		modal:true,
		title:'个性化显示设置',
		draggable:true,
		resizable:false,
		buttons:{
			"确定":g.checkCustom,
			"取消":function() {
				$("#detail").dialog("close").empty();
			}
		}
	});
}

/**
 * 显示排序
 * @param com 按钮名称
 * @param grid 包含列表的div对象
 * @param t grid的显示table对象（jquey）
 * @param p 封装全局参数
 * @param params 按钮的额外请求参数(url 请求地址，title: 标题信息 multiple:是否可以多选 h
 *  	  显示层的高，w 显示层的宽度 check:是否要求选择，info：提示信息 )
 * @returns {Boolean} 
 */
function showOrder(com,grid,t,p,params){
	var detailDiv = $('#detail');
	$("#detail").empty();
	var detailHtml = "<ul>";
	var cols = p.colModel;
	for(var i =0;i<cols.length;i++){
		var col = cols[i];
		if(col.sortable){
			var name = col.name;
			if(col.sortName){
				name=col.sortName;
			}
			var display = col.display;
			detailHtml+="<li><input style='float: left;' id='ch"+name+"' class='sortName' type='checkbox' name='sortName' value='"+name+"'/> <div style='float: left;width:180px;text-align: left;'>"+ display
			+"</div> <input type='radio' id='radasc"+name+"' value='asc' name='"+name+"' checked='checked'/>升序  <input id='raddesc"+name+"' type='radio' value='desc' name='"+name+"'/>降序</li>";
		}
	}
	detailHtml += '</ul>';
	
	detailHtml+='<input type="button" value="上移" id="sortup"/>  <input type="button" value="下移" id="sortdown"/>';
	detailDiv.html(detailHtml);
	var g ={
			checkSort:function (){
				//获取选中列
				var sortNameArray = $('.sortName');
				var sortorderArray = $('.sortorder');
				p.sortname = '';
				p.sortorder ='';
				$('.sdesc', grid).removeClass('sdesc');
				$('.sasc', grid).removeClass('sasc');
				$('.sorted', grid).removeClass('sorted');
				sortNameArray.each(function($index,n){
					if($(n).attr("checked")){
						var sortName = n.value;
						//获取选取的排序规则
						var sortTypes = document.getElementsByName(sortName);
						//alert(sortTypes.length);
						var sortType="asc";
						for(var i= 0;i<sortTypes.length;i++){
							if(sortTypes[i].checked){
								sortType = sortTypes[i].value;
							}
						}
						//var sortType = $(":radio[name="+sortName+"]:checked").val();
						var th  = $("th[abbr='"+sortName+"']",grid);
						$(th).addClass('sorted');
						$('div',th).attr('class','s'+sortType);
						p.sortname += sortName+",";
						p.sortorder += sortType+",";
					}
				});
				t.flexReload();	
				closedetail();
			},
			sortup:function(){
				//获取当前选中的li
				var clickli = $('.clickli');
				if(!clickli.html()){
					alert('请选中要移动的列!');
					return;
				}
				var clickliHtml =  clickli.html();
			    var checkbox  =	clickli.find(":checkbox");
			    //判断是否选中
			    var ischecked = checkbox.attr("checked") == "checked";
				//查找上一个同级li
				var prevli = clickli.prev('li');
				var precheckbox = prevli.find(":checkbox");
				var isprecheck = precheckbox.attr("checked")=="checked";
				if(prevli.html()){
					var prevliHtml = prevli.html();
					//内容交换
					clickli.html(prevliHtml);
					prevli.html(clickliHtml);
					prevli.addClass('clickli');
					clickli.removeClass('clickli');
					//判断选中  江健斌
					if(ischecked){
						prevli.find(":checkbox").attr("checked",true);
					}else{
						prevli.find(":checkbox").attr("checked",false);
					}
					if(isprecheck){
						clickli.find(":checkbox").attr("checked",true);
					}else{
						clickli.find(":checkbox").attr("checked",false);
					}
				}
			},
			sortdown: function(){
				//获取当前选中的li
				var clickli = $('.clickli');
				if(!clickli.html()){
					alert('请选中要移动的列!');
					return;
				}
				var clickliHtml =  clickli.html();
				var checkbox  =	clickli.find(":checkbox");
				  //判断是否选中
			    var ischecked = checkbox.attr("checked") == "checked";
				//查找下一个同级li
				var nextli = clickli.next('li');
				var isnextcheck = nextli.find(":checkbox").attr("checked") == "checked";;
				if(nextli.html()){
					var nextliHtml = nextli.html();
					//内容交换
					clickli.html(nextliHtml);
					nextli.html(clickliHtml);
					nextli.addClass('clickli');
					clickli.removeClass('clickli');
					//判断选中  江健斌
					if(ischecked){
						nextli.find(":checkbox").attr("checked",true);
					}else{
						nextli.find(":checkbox").attr("checked",false);
					}
					if(isnextcheck){
						clickli.find(":checkbox").attr("checked",true);
					}else{
						clickli.find(":checkbox").attr("checked",false);
					}
				}
			}
	};
	//alert($('li',detailDiv).size());
	//判定li事件
	$('li',detailDiv).click(function(){
		$('li',detailDiv).removeClass('clickli');
		$(this).addClass('clickli');
	});
	$('#sortup').click(g.sortup);
	$('#sortdown').click(g.sortdown);
	//设置默认选择
	var sortName = p.sortname;
	var sortorder = p.sortorder;
	if(sortName){
		var sortNames = sortName.split(",");
		var sortorders = sortorder.split(",");
		for(var i =0;i<sortNames.length;i++){
			var name = sortNames[i];
			if(name){
				var order = sortorders[i];
				/*var chname = "#ch"+name;
				var ordername = '#rad'+order+name;
				$(chname).attr("checked",true);
				$(ordername).attr("checked",true);*/
				//由于带点号，jquery无法定位，所以使用原生js方法通过id获取元素
				var chname = "ch"+name;
				var ordername = 'rad'+order+name;
				var chnameObj = $(document.getElementById(chname));
				var ordernameObj = $(document.getElementById(ordername));
				chnameObj.attr("checked",true);
				ordernameObj.attr("checked",true);
				//把选中项同第一个非选中项交换位置,如果当前选中项为第一个，则不做交换
				//var currentli = $(chname).parent();
				var currentli = chnameObj.parent();
				//alert(currentli.html());
				var allli = $('li',detailDiv);
				var currentIndex = allli.index(currentli);
				if(currentIndex>=1){
					//获取没有被选中的第一个li
					var firstNoCheckli = allli.has(":checkbox[name='sortName'][checked!='checked']").eq(0);
					if(firstNoCheckli.length > 0) {
						var firstNoCheckliHtml = firstNoCheckli.html(); //没有被选中的第一个li的HTML内容
						var currentliHtml = currentli.html(); //当前li的HTML内容
						//HTML内容交换
						firstNoCheckli.html(currentliHtml);
						currentli.html(firstNoCheckliHtml);
					}
				}
			}
		}
	}
	$("#detail").dialog({
		height: 400,
		width: 400,
		closeText:'取消',
		modal:true,
		title:'排序设置',
		draggable:false,
		resizable:false,
		buttons:{
			"确定":g.checkSort,
			"取消":function() {
				$("#detail").dialog("close").empty();
			}
		}
	});
}
/**
 * 修改对象，直接提交修改
 * @param com 按钮名称
 * @param grid 包含列表的div对象
 * @param t grid的显示table对象（jquey）
 * @param p 封装全局参数
 * @param params 按钮的额外请求参数(url 请求地址，title: 标题信息 multiple:是否可以多选 h
 *  	  显示层的高，w 显示层的宽度 check:是否要求选择，info：提示信息 )
 * @returns {Boolean} 
 */
function updateInfo(com, grid, t, p, params) {
	var info = "您确定修改选中的记录信息吗？";
	if (params && params.info) {
		info = params.info;
	}
	//获取选中的id
	var ids = $(':checkbox[name="ids"]:checked', grid);
	if (ids.length == 0) {
		hiAlert("请选择要操作的数据!", "提示");
		return false;
	}
	var id = ""; //目标id
	if(ids.length > 1) {
		hiAlert("对不起，只允许操作一条数据!", "提示");
		return false;
	} else {
		id = ids.eq(0).val();	
	}
	//属性值校验
	if(!checkColDetails(t, params)) {
		return;
	}
	hiConfirm(info, "提示", function(r) {
		if (r) {
			var url = $path + params.url;
			if (url.indexOf("?") !== -1) {
				url += "&r=" + Math.random();
			} else {
				url += "?r=" + Math.random();
			}
			$.post(url, {id: id}, function($data) {
				if (!$data.resultCode) {
					hiAlert($data.errorMessage, "提示");
				} else {
					t.flexReload();
				}
			}, 'json');
		}
	});
}

/**
 * 显示右侧详细信息 
 * @param com 按钮名称
 * @param grid 包含列表的div对象
 * @param t grid的显示table对象（jquey）
 * @param p 封装全局参数
 * @param params 按钮的额外请求参数(url 请求地址，title: 标题信息 multiple:是否可以多选 h
 *  	  显示层的高，w 显示层的宽度 check:是否要求选择 iframe 是否使用iframe显示)
 */
function showRightInfo(com, grid,t,p,params) {
	var data = "time=2";
	var postUrl = "";
	if(params && params.url){
		postUrl = $path + params.url;
	}
	if(p.selectId){
		data = "id="+p.selectId;
	}
	data += "&currentTime="+new Date();
	$.post(postUrl, data, function($data){
		$("#rightInfoDiv").html($data);
	});
}

/**
 * 属性值校验
 * @param t 表格对象
 * @param params 参数对象
 * @param selectId 复选框选中的id
 * @returns {Boolean}
 */
function checkColDetails(t, params, selectId) {
	//数据行属性值校验
	if(params && params.checkCol) {
		var vals = params.checkCol.val.split(",");
		var cbxDetails = "";
		if(selectId) {
			//如果指定了被选中的复选框的值，通过值来查找复选框
			cbxDetails = "[value='" + selectId + "']";
		} else {
			//如果没有指定被选中的复选框的值，查找选中的复选框
			cbxDetails = ":checked";
		}
		//获取指定列的属性值
		var colVal = $.trim($(":checkbox[name='ids']" + cbxDetails, t).parents("tr").find("td[abbr='"+params.checkCol.key+"']").children().eq(0).html());
		//如果指定列的属性值不在目标值范围内，进行错误信息提示
		if($.inArray(colVal, vals) === -1) {
			if(params.checkCol.tips) {
				hiAlert(params.checkCol.tips, "提示");
			}
			return false;
		}
	}
	return true;
}

/**
 * 显示信息 
 * @param com 按钮名称
 * @param grid 包含列表的div对象
 * @param t grid的显示table对象（jquey）
 * @param p 封装全局参数
 * @param params 按钮的额外请求参数(url 请求地址，title: 标题信息 multiple:是否可以多选 h
 *  	  显示层的高，w 显示层的宽度 check:是否要求选择 iframe 是否使用iframe显示)
 * @returns {Boolean}
 */
function showInfo(com, grid, t, p, params){
	var content;//查找范围
	var data="time=2";
	var postUrl;
	//dialog的宽高
	var width = (params && params.w) ? params.w : 1000;
	var height = (params && params.h) ? params.h : 640;
	//iframe的宽高
	var iframeWidth = width - 30;
	var iframeHeight = height - 110;
	var title = p.infoTitle;
	if(params && params.url){
		postUrl = $path+params.url;
		if(params.title){
			title = params.title;
		}
	}else{
		postUrl = $path+p.showAction;
	}
	//当前flexgrid被选中记录的id值
	var currSelectId = null;
	if(p.selectId){
		currSelectId = p.selectId;
		data = "id=" + currSelectId;
	}else{
		data = commonUtils.check(grid, params);
		if(!data){
			return;
		}
		currSelectId = data.substring(data.indexOf("=") + 1);
	}
	
	//增加iframe的宽高参数
	data += "&iframeWidth=" + iframeWidth + "&iframeHeight=" + iframeHeight;
	//添加了附加参数的情况
	if(params && params.paramData) {
		$.each(params.paramData, function(name, val){
			data += "&paramNames=" + name + "&paramVals=" + val;
		});
	}
	data += "&currentTime=" + new Date();
	var g = {
		addInfo: function(){
			commonUtils.addInfo(t, content, params);
		}
	};
	
	//弹出窗默认id为#detail
	var dialogId = "#detail";
	//获取指定的弹出窗id
	if(params && params.dialogId) {
		dialogId = params.dialogId;
	}
	
	var buttons = {}; //按钮属性配置
	if(params.btnInfos) {
		//配置确认按钮
		if(params.btnInfos.btnCommitDesc) {
			buttons[params.btnInfos.btnCommitDesc] = g.addInfo;
		}
		//配置取消按钮
		if(params.btnInfos.btnCancelDesc) {
			buttons[params.btnInfos.btnCancelDesc] = function() {
				$(dialogId).dialog("close").empty();
			}
		}
		//配置额外添加的按钮
		if(params.btnInfos.extra) {
			$.each(params.btnInfos.extra, function(desc, func){
				buttons[desc] = func;
			});
		}
	} else {
		//默认的按钮配置
		buttons = {
			"确定":g.addInfo, 
			"取消":function() {
				$(dialogId).dialog("close").empty();
			}
		};
	}
	//需要屏蔽功能按钮的情况
	if(params && params.isHideBtn) {
		buttons = {};
	}
	
	//属性值校验
	var checkColResult = checkColDetails(t, params, currSelectId);
	if(!checkColResult) {
		//如果设置了属性校验不正确后，需要屏蔽操作按钮，进行屏蔽
		if(params && params.checkCol && params.checkCol.hideBtnForNotMatch) {
			buttons = {};
		} else {
		//如果属性检验不正确，没有做任何设置，不打开弹出窗
			return;
		}
	}
	//如果搜索层有指定额外的参数，进行参数拼接（隐藏域的class为hidFormEle）
	$(".searchForm :hidden.hidFormEle", grid).each(function(){
		var formEleKey = $(this).attr("name");
		var formEleVal = $(this).val();
		data += "&paramNames=" + formEleKey + "&paramVals=" + formEleVal;
	});
	/**firefox处理*/
	$(dialogId).dialog({
		height: height,
		width: width,
		closeText: '取消',
		modal: true,
		title: title+'信息',
		draggable: false,
		resizable: true,
		buttons: buttons,
		close: function() {
			$(dialogId).empty();
		}
	}).load(postUrl, data, function(response, status, xhr){
		//初始化一个默认使用公共样式的参数，然后合并到params中
		params = $.extend({isUseCommonStyle: true}, params);
		//判断是否有iframs
		if(params&&params.iframe){
			//alert('iframe');
			$('.showInfoFrame').load(function(){
				content = this.contentWindow.document;
				$(".detail #infoForm select",content).each(function(){
					if($(this).attr("dir")){
						$(this).val($(this).attr("dir"));
					}
		 		});
				//alert($(".detail td",content).size());
	        	//alert($(".detail td",content).not("[class^='cke']").size()+"9");
				if(params && params.isUseCommonStyle) {
					$(".detail #infoForm td",content).not("[class^='cke']").each(function($index){
		 				$(this).addClass($index%2==0?'odd':'even');
		 			}); 
				}
				//如果存在回调函数，则执行回调
				if(params && params.callBack){
					params.callBack(content, currSelectId);
				}
			});
		} else {
			//alert('非iframe');
			$(".detail #infoForm select").each(function(){
				//alert($(this).attr("name"));
				//alert($(this).attr("dir"));
				if($(this).attr("dir")){
					$(this).val($(this).attr("dir"));
				}
			});
			
			$(".detail #infoForm td").not("[class^='cke']").each(function($index){
				$(this).addClass($index%2==0?'odd':'even');
			});
			if(params && params.callBack){
				params.callBack();
			}
		}
	});
}

/**
 * 删除记录
 * @param com
 * @param grid
 * @param t
 * @param p
 * @param params
 * @returns {Boolean}
 */
function deleteInfo(com, grid,t,p,params){
	var info = "您确定删除选中的记录信息吗？";
	if (params && params.info) {
		info = params.info;
	}
	//获取选中的id
	var ids = $(':checkbox[name="ids"]:checked', grid);
	if (ids.length == 0) {
		hiAlert("请选择要操作的数据!", "提示");
		return false;
	}
	if(params && params.single && ids.length > 1) {
		hiAlert("对不起，只允许操作一条数据!", "提示");
		return false;
	}
	var url = $path + p.delAction;
	if (params && params.url) {
		url = $path + params.url;
	}
	hiConfirm(info,"提示",function(r){
		if(r){	
			var data=ids.serialize();
			$.post(url,data,function($data){
				if(!$data.resultCode){
					hiAlert($data.errorMessage,"提示");
				}else{
					t.flexReload();
					if(params&&params.afterCallBack){
						//alert("执行回调");
						params.afterCallBack($data);
					}
				}			
			},'json');
		}
	});
}


/**
 * BEN
 * 恢复被逻辑删除的记录
 * @param com
 * @param grid
 * @param t
 * @param p
 * @param params
 * @returns {Boolean}
 */
function recoverInfo(com, grid,t,p,params){
	var info = "您确定恢复选中的记录信息吗？";
	if(params&&params.info){
		info = params.info;
	}
	//获取选中的id
	var ids = $(':checkbox[name="ids"]:checked',grid);
	if(ids.length==0){
		hiAlert("请选择要操作的数据!","提示");
		return false;
	}
	var url =$path+p.recoverAction;
	if(params&&params.url){
		url = $path+params.url;
	}
	hiConfirm(info,"提示",function(r){
		if(r){	
			var data=ids.serialize();
			$.post(url,data,function($data){
				if(!$data.resultCode){
					hiAlert($data.errorMessage,"提示");
				}else{
					t.flexReload();
					if(params&&params.afterCallBack){
						//alert("执行回调");
						params.afterCallBack($data);
					}
				}			
			},'json');
		}
	});
}
function singleUpdate(com,grid,t,p,params){
	//获取选中的id
	var ids = $(':checkbox[name="ids"]:checked',grid);
	if(ids.length!=1){
		hiAlert("请选择一条要操作的数据!","提示");
		return false;
	}
	$.post($path+params.showUrl,params.updateParams,function($data){
		$("#status").html($data);
		$("#status").dialog({
			height: 140,
			width: 290,
			closeText:'取消',
			modal:true,
			title:com,
			buttons:{
				"确定":g.update,
				"取消":g.closedetail
			}
		});
	});
	var g={
		update:function(){
			hiConfirm("您确定修改选中的信息吗？","提示",function(r){
				if(r){
					var form = $('#updateForm');
					//var idForm = $(grid).parent("form");
					var url =$path+form.attr('action');
					var data=ids.serialize();
					data += ('&'+form.serialize());
					$.post(url,data,function($data){
						if(!$data.resultCode){
							hiAlert($data.errorMessage,"提示");
						}else{
							t.flexReload();
							$("#status").dialog("close");
						}			
					},'json');
				}
			});
		},
		closedetail: function() {
			$("#status").dialog("close");
		}
	};
}
/**
 * 添加新行
 */
function addNewRow(){
	var templet = $('#infoForm .temple').html();
	$('#infoForm table').append("<tr class='temple'>"+templet+"</tr>");
	$('#infoForm .temple').last().find("input").val("");
}

/***
 * 删除新行
 * @param $this
 */
function deleteRow($this){
	if($('#infoForm .temple').size()!=1){
		$($this).parents('.temple').remove();
	}
}

/**
 * 初始化选中信息
 * @param $id
 * @param $list
 */
function initChecked($id,$list){
	$list.each(function(){
		if($(this).val()==$id){
			$(this).attr("checked",true);
			return;
		}
	});
}

function initroleSet($id,$list){
	$list.each(function(){
		if($(this).attr("id")==$id){
			$(this).css("color","red");
			return;
		}
	});
}

/**自动补全*/
function autocomplete($this) {
	var cache = {};
	var lastXhr;
	var ele = $($this);
	ele.autocomplete({
		minLength: 1,
		source:function(request, response) {
			var term = request.term;
			if ( term in cache ) {
				response($.map(cache[term], function( item ) {
					return {	
						label: item.name,
						desc:item.name,
						value: (item.name==undefined?'':'['+item.name+']'),
						id:item.id
					};
				}));
				return;
			}
			lastXhr = $.getJSON($path+"/mc/testautocomplete", {'entity.name':ele.val(),'sortorder':'asc','sortname':'name'}, function(data, status, xhr) {
				cache[ term ] = data.rows;
				if ( xhr === lastXhr ) {
					response($.map(data.rows, function( item ) {
						return {	
							label: item.name,
							desc:item.age,
							value: (item.name==undefined?'':'['+item.name+']'),
							id:item.id
						};
					}));
				}
			});
		}
		,
		select: function( event, ui ) {
			ele.val(ui.item.desc);
//			ele.parents('.temple').find('.poNum').val(ui.item.minBuyNum);
//			ele.parents('.temple').find('.price').val(ui.item.price);
			return false;
		},
		focus: function( event, ui ) {
			return false;
		}
	}).data( "autocomplete" )._renderItem = function( ul, item ) {
		return $( "<li></li>" )
			.data( "item.autocomplete", item )
			.append( "<a>" + item.desc + "<br>&nbsp;&nbsp;&nbsp;&nbsp;" + item.label + '&nbsp;' + item.value + "</a>" )
			.appendTo( ul );
	};
}





/***
 * 压缩后下载公共方法 BEN
 * @param url1 下载FTP压缩文件的请求地址 例：$path+"/mc/qarDownqarFtpDownloadCompress";
 * @param url2 压缩文件成功后 跳转的下载请求地址
 * @param url3 查看进度的请求地址  $path+"/mc/qarDownmonitirDownProgress";
 * @param data  下载FTP压缩文件的请求地址的附加参数 json对象 	例：var data=ids.serialize();
 * @param grid 页面控件元素 指定在压缩过程中屏蔽其页面元素
 */
function downLoadCompress( url1,url2,url3,data ,grid){
//		alert(url1);
//		alert(url2);
//		alert(url3);
		
	  	var offset = $(grid).offset();
		//盖住后面的div
		var blockDiv = $("<div id='blockDiv' style='z-index: 2;position: absolute'><div>");
		var colorBlockDiv=$("<div id='colorBlockDiv' style='z-index: 3;position: absolute'><div>");
		//进度条
		var downProgressbar =$("<div id='downProgressbar' style='z-index: 3;position: absolute'  ></div>");
		//百分比显示
		var percentText = $("<span id='qarpercent' style='z-index: 3;position: absolute'>已经完成：0%</span>");
		var jqgrid= $(grid);
		jqgrid.before(blockDiv);
		$("#blockDiv").offset({ top: offset.top, left: offset.left });
		//
		//$("#blockDiv").attr("css","ui-widget-overlay");
		$("#blockDiv").css({opacity:"0.0", background:"#F5FFFA",width: jqgrid.css('width'),height:jqgrid.css('height')});
		
		jqgrid.append(colorBlockDiv);
		$("#colorBlockDiv").css({opacity:"0.9", background:"#DDDDDD",width: "750px",height:"300px"});
		$("#colorBlockDiv").offset({ top: offset.top*1.7, left: offset.left*2 });
		colorBlockDiv.append(percentText);
		colorBlockDiv.append(downProgressbar);
		 percentText.css({"color": "#FFAA33"});
		var width = jqgrid.css('width').substring(0,jqgrid.css('width').length-2);
		 //设置百分比位置
		percentText.offset({ top: (offset.top*3-15), left: (offset.left*2.5+width/4-30),opacity:"1"});
		//设置进度条长宽
		downProgressbar.css({width:(width/2)+"px",height:"15px",opacity:"1"});
		//设置进度条位置
		 downProgressbar.offset({ top: (offset.top*3), left: (offset.left*2.5)});
		downProgressbar.progressbar({value:0});
		//调用定时器 
		 var interval = setInterval(function(){
			 
			 url3+="?date="+new Date();
			$.ajax({
				url:url3,
				dataType:"json",
				error:function(){
				    window.clearInterval(interval);
					percentText.remove();
					downProgressbar.remove();
					colorBlockDiv.remove();
					blockDiv.remove();
					hiAlert("服务器响应错误","提示");
				},
				success:function($data){
					var percentage = $data.progressPercen;
					downProgressbar.progressbar({value:percentage});
					 percentText.html("已经完成："+percentage+"%");
				}
			});
			
		},1000); 
		//无刷新请求去压缩文件  开始下载压缩
	    $.post(url1,data,function($data){
			//alert($data.zipName);
			if(!$data.resultCode){
				hiAlert($data.errorMessage,"提示");
			}else{
				//压缩完毕后页面跳转下载文件
				 window.location= url2+$data.zipName;
			}		
			window.clearInterval(interval);
			percentText.remove();
			downProgressbar.remove();
			colorBlockDiv.remove();
			blockDiv.remove();
		 },'json');   
}
/***
 * 限定文本框输入字数 
 * @param textSize 输入字数
 * @param id 控件标识 例 .needLimitString #sssss
 */
function needLimitString(textSize,id){
	 
	//限制舒服文本框五百个字
	$(id).live("keydown",function(){
		
	   if ($(this).val().length>=textSize &&event.keyCode!=8)
	   {
		   event.returnValue=false;
	   }
	});
	
	//限制舒服文本框五百个字
	$(id).live("change",function(){
		if ($(this).val().length>=textSize )
		  { 
	    	hiAlert("限输"+textSize+"字符","提示");
		   $(this).focus();
		  }
		 
	});
}
 

/**
 * @param grid 包含列表的div对象 要盖主的div对象
 * @param logoTopDividedVal logo的top值需要被除的值
 */
function converflexigrid(grid, logoTopDividedVal) {
	var offset = $(grid).offset();
	var jqgrid= $(grid);
	var logoTop = offset.top;
	//指定了logo的top值需要被除的值的情况，进行相除获得新的top值
	if(logoTopDividedVal) {
		logoTop /= logoTopDividedVal;
	}
    var blockDiv = $("<div class='blockDiv' style='z-index: 2;position: absolute'> <div  style=' margin: auto;text-align: center;margin-top: " + logoTop + "px ' > <img  src='"+$path+"/images/common/loading.gif'/></div>  <div>");
	jqgrid.append(blockDiv);
	$(".blockDiv", jqgrid).offset({ top: offset.top, left: offset.left });
	$(".blockDiv", jqgrid).css({opacity:"0.9", background:"#FFFFFF",width: jqgrid.css('width'),height:jqgrid.css('height')});
}

/***
 * 
 * @param grid  要去除盖主的div对象
 */
function removeConverflexigrid(grid){
	$(".blockDiv", grid).remove();
}

(function($) {
	/**
	 * 绑定自动补全
	 * @param param 参数
	 * <p>obj 文本框对象</p>
	 * <p>url 请求地址</p>
	 * <p>data 请求参数</p>
	 * <p>searchKey 搜索字段请求参数名称</p>
	 * <p>multiple 是否多选</p>
	 * <p>beShowedItem 方法，返回被显示的项的属性</p>
	 * <p>beChoosedItem 方法，返回被选择的项的属性</p>
	 */
	$.fn.bindAutoComplete = function(param) {
		$(this).live("focus", function(){
			var cache = {};
			var lastXhr = "";
			
			var targetParam = {
				url: '', //请求地址
				data: null, //请求参数
				searchKey: 'filterStr', //搜索字段请求参数名称(默认值：filterStr)
				resListName: 'rows', //返回结果集属性名(默认值：rows)
				multiple: false, //是否多选
				isScrollBottom: false, //标识是否需要滚动到底部(用于多行文本域的情况)
				beShowedItem: false, //方法，返回被显示的项的属性
				beChoosedItem: false //方法，返回被选择的项的属性
			};
			$.extend(targetParam, param); //合并参数对象
			//如果没有指定补全文本框对象，请求地址，和搜索内容的属性名称，跳出方法
			if(!targetParam.url) {
				return;
			}
			var ele = $(this); //触发补全的文本框对象
			//若定义了自动补全前的初始化动作，执行
			if(targetParam.init) {
				targetParam.init();
			}
			//url如果被定义为一个function，获取这个function的返回值，即获取最终的url
			if($.type(targetParam.url) === 'function') {
				targetParam.url = targetParam.url();
				//如果不存在url，或者获取了false的返回结果，不执行自动补全方法
				if(!targetParam.url) {
					return false;
				}
			}
			//multiple如果被定义为一个function，获取这个function的返回值，即获取是否多选的返回结果
			if($.type(targetParam.multiple) === 'function') {
				targetParam.multiple = targetParam.multiple(ele);
			}
			
			var autoUtils = {
				//获取响应的JSON数据
				getResJson: function(ele, item) {
					var content = $.trim(ele.val()); //用户输入的搜索值
					//获取JSON数据前的额外处理
					if(targetParam.beShowedItem) {
						content = targetParam.beShowedItem(content, item);
					} else {
						//如果没有指定显示项的属性，使用默认属性"key"
						content = item.key;
					}
					var resObj = {};
					//空值替换，并且对象中增加输入框中搜索值的内容content
					$.each(item, function(key, value){
						resObj[key] = value ? value : '';
					});
					resObj['content'] = content; //响应JSON对象中增加搜索框内容
					return resObj;
				}
			};
			ele.autocomplete({
				minLength: 1,
				source:function(request, response) {
					var term = request.term;
					if ( term in cache ) {
						response($.map(cache[term], function(item){
							return autoUtils.getResJson(ele, item);
						}));
						return;
					}
					var targetData = {}; //目标请求参数
					var currVal = $.trim(ele.val());
					//如果是多选，截取最后输入的内容
					if(targetParam.multiple && currVal) {
						currVal = currVal.substring(currVal.lastIndexOf(",") + 1);
					}
					//如果输入的内容为空，不进行补全
					if(!currVal) {
						return;
					}
					targetData[targetParam.searchKey] = currVal;
					//如果有指定额外参数，进行参数合并
					if (targetParam.data) {
						$.extend(targetData, targetParam.data);
					}
					lastXhr = $.getJSON(targetParam.url, targetData, function(data, status, xhr) {
						var resList = data[targetParam.resListName];
						//如果是字符串列表，转换为对象列表(以"key"来获取对象内容)
						if(resList && resList.length > 0 && $.type(resList[0]) === "string") {
							resList = $.map(resList, function(contentStr){
								return {key: contentStr};
							});
						}
						cache[ term ] = resList;
						if ( xhr === lastXhr ) {
							response($.map(cache[term], function(item){
								return autoUtils.getResJson(ele, item);
							}));
						}
					});
				},
				select: function( event, ui ) {
					var currVal = $.trim(ele.val());
					var targetVal = '';
					if(targetParam.beChoosedItem) {
						//如果有指定选择后绑定的VO属性，进行绑定
						targetVal = targetParam.beChoosedItem(currVal, ui.item);
					} else {
						//如果没有指定选择后需要绑定的VO属性，获取选择的内容
						targetVal = $.trim(ui.item.content);
					}
					if(targetVal) {
						if(targetParam.multiple) {
							//如果是多选，合并当前选择的内容(先清空最后输入的内容)
							currVal = currVal.substring(0, currVal.lastIndexOf(",") + 1);
							targetVal = currVal + targetVal + ",";
						}
						ele.val(targetVal);
						//输入框需要滚动到底部(用于多行文本域的情况)
						if(targetParam.isScrollBottom) {
							ele.scrollTop(ele.prop("scrollHeight"));
						}
					}
					return false;
				},
				focus: function( event, ui ) {
					return false;
				}
			}).data( "autocomplete" )._renderItem = function( ul, item ) {
				return $( "<li></li>" ).data( "item.autocomplete", item )
				.append("<a>" + item.content + "</a>")
				.appendTo( ul );
			};
		});
		return this;
	};
})(jQuery);

/***
 * 要求传入参数    params.multiple  params.url
 * 发送邮件公共方法
 */
function sendEmail(com, grid,t,p,params){
	var ids = $(':checkbox[name="ids"]:checked',grid);
	
	//检查是否有选中记录
	if(params&&params.multiple){
		if(ids.length==0){
			hiAlert("请选择要处理的记录!","提示");
			return false;
		}
		data=ids.serializeArray();
	}else {
		if((ids.length==0||ids.length>1)){
			hiAlert("请选择一条要处理的记录!","提示");
			return false;
		}
	}
	//请求地址
	 var data=ids.serializeArray();
	
	 var title =params.title;
	 //打开选择人地址 
	 //如果收件人有多个
	 
	 if(params&&params.multipleStaff){
		 var postUrl = $path+"/mc/common/choiceStaffs.jsp";
		 
		 $("#detail").dialog({
				height: 150,
				width: 580,
				closeText:'取消',
				modal:true,//屏蔽后面
				title:title,
				draggable:true,//可拖动
				resizable:true,//可调节大小
				buttons:{
					 "确定":function(){
						 var  staffNum =  $("#detail .statffs").val();
						 //JSON.stringify(data)
						 var ajaxurl = $path+params.url;
						 ajaxurl+="?date="+Math.random()+"&staffNum="+staffNum;
						 $("#detail").dialog("close");
					  $.ajax({
							 url:ajaxurl,
							 data:data,
							 type:"post",
							 dataType:"json",
							 error:function(){
								 hiAlert("请求异常","提示");
							 },
							 success:function($data){
								 if(!$data.resultCode){
										hiAlert($data.errorMessage,"提示");
								 }else{
									 t.flexReload();
								 }
							 }
						  });
					  }
				},
				close:function(){
					 $("#detail").empty();
				}
		 	}).load(postUrl,{},function(response, status, xhr){});
			 
	 }else {
		 
		 var postUrl = $path+"/mc/common/choiceStaff.jsp";
		 $("#detail").dialog({
				height: 150,
				width: 580,
				closeText:'取消',
				modal:true,//屏蔽后面
				title:title,
				draggable:true,//可拖动
				resizable:true,//可调节大小
				buttons:{
					 "确定":function(){
					
						 var  staffNum =  $("#detail .statff").val();
						 //JSON.stringify(data)
						 var ajaxurl = $path+params.url;
						 ajaxurl+="?date="+Math.random()+"&staffNum="+staffNum;
						 $("#detail").dialog("close");
					  $.ajax({
							 url:ajaxurl,
							 data:data,
							 type:"post",
							 dataType:"json",
							 error:function(){
								 hiAlert("请求异常","提示");
							 },
							 success:function($data){
								  if(!$data.resultCode){
										hiAlert($data.errorMessage,"提示");
								 }else{
									 t.flexReload();
								 }
							 },
							 
						 });
					  }
				},
				close:function(){
					 $("#detail").empty();
				}
		 	}).load(postUrl,{},function(response, status, xhr){});
			 
	 }
 
}

/**心跳请求*/
//function callEmpty() {
	/*$.post($path+"/message!showNoReadNoticeCount.do",function($data){
		$('#myMessage').html("我的消息("+$data.title+")");
	});
	setTimeout("callEmpty()", 5*60*1000);*/
	/*var url=$path+"/mc/cfpModifygetNodealCount";
	$.post(url,function($data){
		$("#noDealLi span").remove();
		$("#noDealLi").append("<span style='color: red;font-size: 14px'>("+$data.nodealCounts+")</span>");
	});*/
	//setTimeout("callEmpty()", 5*60*1000);
	
	//定时刷新各模块下的数据数量
	/*var url = $path + "/mc/pageRefreshrefreshModuleCount";
	$.post(url, function($data){
		var refreshCountVoList = $data.refreshCountVoList;
		if(refreshCountVoList && refreshCountVoList.length > 0) {
			$.each(refreshCountVoList, function(index, refreshCountVo){
				var moduleClass = refreshCountVo.key; //模块的类名
				var count = refreshCountVo.count; //数据数量
				$("." + moduleClass).each(function(){
					$(this).find("span").remove();
					$(this).append("<span style='color: red;font-size: 14px'>("+ count +")</span>");
				});
			});
		}
	});*/
	//每10秒刷新一次
	//setTimeout("callEmpty()", 10000);
//}

/**
 * 复制搜索层内
 * @param srcContentDiv 源搜索层
 * @param targetContentDiv 目标搜索层
 * @param showSdiv 是否显示sDiv
 */
function copySearchDivContent(srcContentDiv, targetContentDiv, showSdiv) {
	var content = srcContentDiv.html(); //获取搜索层内容
	targetContentDiv.empty().append(content); //将搜索层的内容添加到搜索浮动层
	//文本、隐藏域、单选、多选、文件赋值
	$("input", srcContentDiv).each(function(i){
		var type = $(this).attr("type"); //控件类型
		var targetObj = $("input", targetContentDiv).eq(i); //目标对象
		if(type === "text" || type === "hidden") {
			if($(this).hasClass("time") && showSdiv) {
				 //如果是绑定日期的控件，在目标位置复制原日期控件对象
				targetObj.after($(this)).remove();
			} else {
				targetObj.val($(this).val()); //文本或隐藏域赋值
			}
		} else if(type === "checkbox" || type === "radio") {
			targetObj.prop("checked", $(this).prop("checked")); //单选或多选设置选中
		} else if(type === "file") {
			//如果是文件控件，在目标位置复制原文件控件对象
			targetObj.after($(this)).remove();
		}
	});
	//下拉框赋值
	$("select", srcContentDiv).each(function(i){
		var targetObj = $("select", targetContentDiv).eq(i);
		targetObj.val($(this).val());
	});
	//多行文本框赋值
	$("textarea", srcContentDiv).each(function(i){
		var targetObj = $("textarea", targetContentDiv).eq(i);
		targetObj.html($(this).val());
	});
}

/**
 * 控制搜索层的展现(局部或全部展现)
 * @param sepDiv 搜索层局部或全部显隐图片按钮
 */
function opSearchDivDisplay(sepDiv) {
	sepDiv = $(sepDiv); //当前点击的切分div
	//隐藏搜索层，显示搜索浮动层的情况
	if(sepDiv.hasClass("sepHide")) {
		var searchAllContentDiv = $(sepDiv).parents(".searchAllContentDiv"); //搜索层
		var floatContentDiv = searchAllContentDiv.prev(".floatContentDiv"); //搜索浮动层
		sepDiv.attr("class", "sepShow").find("label").html("隐藏"); //标识搜索浮动层显示
		//将搜索层内容添加到搜索浮动层
		copySearchDivContent(searchAllContentDiv, floatContentDiv, true);
		$("tr.hideTr", floatContentDiv).toggle(); //由于搜索层hideTr的tr为隐藏状态，所以显示处理
		//设置搜索层高度并清空其内容(由于清空内容后，flexgrid会往上缩，所以先定义搜索层高度)
		searchAllContentDiv.css("height", searchAllContentDiv.height()).empty();
		//设置搜索层浮动层底部边框
		$(".commSearchBlockSubmit", floatContentDiv).css("borderBottom", "1px dotted #CCC");
		floatContentDiv.show(); //显示搜索浮动层
	} else {
	//隐藏搜索浮动层，显示搜索层的情况
		var floatContentDiv = $(sepDiv).parents(".floatContentDiv"); //搜索浮动层
		var searchAllContentDiv = floatContentDiv.next(".searchAllContentDiv"); //搜索层
		sepDiv.attr("class", "sepHide").find("label").html("更多条件");  //标识搜索浮动层隐藏
		//将搜索浮动层内容添加到搜索层
		copySearchDivContent(floatContentDiv, searchAllContentDiv, true);
		$("tr.hideTr", searchAllContentDiv).toggle(); //由于搜索浮动层hideTr的tr为显示状态，所以隐藏处理
		floatContentDiv.empty().hide(); //搜索浮动层清空内容并隐藏
	}
}

/**
 * 上传图片预览
 * @param file
 * @param imghead
 * @param preview
 */
function previewImage(file,imghead,preview) {
	var MAXWIDTH = 200;
	var MAXHEIGHT = 100;
	var div = document.getElementById(preview);
	if (file.files && file.files[0]) {
		div.innerHTML = '<img id='+imghead+'>';
		var img = document.getElementById(imghead);
		img.onload = function() {
			var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT,
					img.offsetWidth, img.offsetHeight);
			img.width = rect.width;
			img.height = rect.height;
			img.style.marginLeft = rect.left + 'px';
			img.style.marginTop = rect.top + 'px';
		}
		var reader = new FileReader();
		reader.onload = function(evt) {
			img.src = evt.target.result;
		}
		reader.readAsDataURL(file.files[0]);
	} else {
		var sFilter = 'filter:'+imghead+'id:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
		file.select();
		var src = document.selection.createRange().text;
		div.innerHTML = '<img id='+imghead+'>';
		var img = document.getElementById(imghead);
		img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;
		var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth,
				img.offsetHeight);
		status = ('rect:' + rect.top + ',' + rect.left + ',' + rect.width
				+ ',' + rect.height);
		div.innerHTML = "<div  style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;margin-left:"+rect.left+"px;"+sFilter+src+"\"'></div>";
	}
}
/**
 * 图片缩放
 * @param maxWidth
 * @param maxHeight
 * @param width
 * @param height
 * @returns {___anonymous44737_44803}
 */
function clacImgZoomParam(maxWidth, maxHeight, width, height) {
	var param = {
		top : 0,
		left : 0,
		width : width,
		height : height
	};
	if (width > maxWidth || height > maxHeight) {
		rateWidth = width / maxWidth;
		rateHeight = height / maxHeight;
		if (rateWidth > rateHeight) {
			param.width = maxWidth;
			param.height = Math.round(height / rateWidth);
		} else {
			param.width = Math.round(width / rateHeight);
			param.height = maxHeight;
		}
	}
	param.left = Math.round((maxWidth - param.width) / 2);
	param.top = Math.round((maxHeight - param.height) / 2);
	return param;
}

/**
 * 根据指定的最大宽高和图片比例，动态指定图片的宽高
 * @param maxWidth 最大宽
 * @param maxHeight 最大高
 * @param objImg 图片对象
 */
function autoResizeImage(maxWidth, maxHeight, objImg) {
	var img = new Image();
	img.src = objImg.src;
	var hRatio;
	var wRatio;
	var ratio = 1;
	var w = img.width;
	var h = img.height;
	if (w > maxWidth) { //判断宽度大于可视化的情况
		wRatio = maxWidth / w;
		hRatio = maxHeight / h;
		if (maxWidth == 0 && maxHeight == 0) {
			ratio = 1;
		} else if (maxWidth == 0) {
			if (hRatio < 1) {
				ratio = hRatio;
			}
		} else if (maxHeight == 0) {
			if (wRatio < 1) {
				ratio = wRatio;
			}
		} else if (wRatio < 1 || hRatio < 1) {
			ratio = wRatio <= hRatio ? wRatio : hRatio;
		}
		if (ratio < 1) {
			w = w * ratio;
			h = h * ratio;
		}
		objImg.height = h;
		objImg.width = w;
	}
}
 